package main

import "fmt"

func main() {
	var age uint8
	fmt.Println("请输入您的年龄")
	fmt.Scan(&age)
	switch age {
	case 0:
		fmt.Println("打印0")
	case 1:
		fmt.Println("打印1")
	default:
		fmt.Println("打印默认值2")
	}

	//一个分支可以有多个值，多个case值中间使用英文逗号分隔。
	switch n := 7; n {
	case 1, 3, 5, 7, 9:
		fmt.Println("奇数")
	case 2, 4, 6, 8:
		fmt.Println("偶数")
	default:
		fmt.Println(n)
	}

	//分支还可以使用表达式，这时候switch语句后面不需要再跟判断变量
	agek := 30
	switch {
	case agek < 25:
		fmt.Println("好好学习吧")
	case agek > 25 && agek < 35:
		fmt.Println("好好工作吧")
	case agek > 60:
		fmt.Println("好好享受吧")
	default:
		fmt.Println("活着真好")
	}

	//fallthrough语法可以执行满足条件的case的下一个case，是为了兼容C语言中的case设计的。
	s := "a"
	switch {
	case s == "a":
		fmt.Println("a")
		fallthrough
	case s == "b":
		fmt.Println("b")
	case s == "c":
		fmt.Println("c")
	default:
		fmt.Println("...")
	} //输出a,b
}
